package com.aysafety.iotdataplatformweb.services.geosound;

import java.util.List;
import java.util.Map;

public interface GeoSoundService {
    long countByGeoSound(String mineId, String deviceId, String startTime, String endTime, int timeSpan,
        String timeUnit) throws Throwable;

    List<Map<String, Object>> queryRealTimeByGeoSound(String mineId, String deviceId, String startTime, String endTime,
        int timeSpan, String timeUnit, int page, int size, String startRow) throws Throwable;

    /**
     * @Description: 大能量地音事件
     * @Param: [mineId, startTime, endTime]
     * @return: java.util.List<java.util.Map   <   java.lang.String   ,   java.lang.Object>>
     * @Author: ChengQi
     * @Date: 2018/12/23
     */
    List<Map<String, Object>> queryWeblargeEnergy(String mineId, String equipmentId, String startTime, String endTime)
        throws Throwable;

    /**
     * @Description: 获取脉冲数据
     * @Param: [mineId, equipmentId, startTime, endTime, timeSpan]
     * @return: java.util.List<java.util.Map   <   java.lang.String   ,   java.lang.Object>>
     * @Author: ChengQi
     * @Date: 2018/12/23
     */
    List<Map<String, Object>> getWebPulse(String mineId, String equipmentId, String startTime, String endTime,
        int timeSpan) throws Throwable;

    /**
    * @Description: 每日能量偏差高值总数Ds、每日能量偏差高值总数Ds、日总、日均、日最高数据数量
    * @Param: [mineId, equipmentId, startTime, endTime, size] 
    * @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>> 
    * @Author: ChengQi 
    * @Date: 2019/2/20 
    */ 
    List<Map<String, Object>> daily(String mineId, String equipmentId, String startTime, String endTime,int size)
        throws Throwable;

    /**
     * @Description: 综合预警
     * @Param: [mineId, startTime, endTime]
     * @return: java.util.List<java.util.Map       <       java.lang.String       ,       java.lang.Object>>
     * @Author: ChengQi
     * @Date: 2019/1/3
     */
    Map<String, Object> comprehensiveWarning(String mineId, String startTime, String endTime) throws Throwable;

    /** 
    * @Description: 能量平均值、能量偏差值
    * @Param: [mineId, equipmentId, startTime, endTime, parseInt, parseInt1, size] 
    * @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>> 
    * @Author: ChengQi 
    * @Date: 2019/2/18 
    */ 
    List<Map<String, Object>> queryCalEmergoa(String mineId, String equipmentId, String startTime, String endTime, int parseInt, int parseInt1, int size);

    /** 
    * @Description: 能量平均值、能量偏差值数据总条数
    * @Param: [mineId, equipmentId, startTime, endTime, parseInt, parseInt1] 
    * @return: long 
    * @Author: ChengQi 
    * @Date: 2019/2/18 
    */ 
    long countCalEmergoa(String mineId, String equipmentId, String startTime, String endTime, int parseInt, int parseInt1);

    /** 
    * @Description:
    * @Param: [mineId, equipmentId, startTime, endTime] 
    * @return: long 
    * @Author: ChengQi 
    * @Date: 2019/2/20 
    */ 
    long countDaily(String mineId, String equipmentId, String startTime, String endTime);

    /** 
    * @Description: 脉冲、脉冲因子、脉冲偏差值
    * @Param: [mineId, equipmentId, startTime, endTime, timeSpan, n] 
    * @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>> 
    * @Author: ChengQi 
    * @Date: 2019/2/20 
    */ 
    List<Map<String, Object>> queryCalPulse(String mineId, String equipmentId, String startTime, String endTime, int timeSpan, int n,int size);

    /**
     * @Description: 脉冲、脉冲因子、脉冲偏差值数据数量
     * @Param: [mineId, equipmentId, startTime, endTime, timeSpan, n]
     * @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     * @Author: ChengQi
     * @Date: 2019/2/20
     */
    long countCalPulse(String mineId, String equipmentId, String startTime, String endTime, int timeSpan, int n);

    /**
     * 查询脉冲、累积能量和能量均值
     * @param mineId
     * @param equipmentId
     * @param startTime
     * @param endTime
     * @param timeSpan
     * @param n
     * @param size
     * @return
     */
    List<Map<String, Object>> queryPluseAndEnergy(String mineId, String equipmentId, String startTime, String endTime, int timeSpan, int n,int size);
}
